package com.yic.module.mes.controller.admin.mo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;

import com.alibaba.excel.annotation.ExcelProperty;
import com.yic.framework.excel.core.annotations.DictFormat;
import com.yic.framework.excel.core.convert.DictConvert;


/**
 * 生产排产 Excel VO
 *
 * @author 系统管理员
 */
@Data
public class MoExcelVO {

    @ExcelProperty("主键")
    private Long id;

    @ExcelProperty("工单号")
    private String code;

    @ExcelProperty("生产计划")
    private Long planId;

    @ExcelProperty("产品通用信息")
    private Long itemId;

    @ExcelProperty("产品生产信息")
    private Long itemProduceId;

    @ExcelProperty("上阶工单")
    private Long parentId;

    @ExcelProperty("上阶工单")
    private String parentCode;

    @ExcelProperty("排产数量")
    private BigDecimal produceAmount;

    @ExcelProperty("开工时间")
    private LocalDateTime startTime;

    @ExcelProperty("完工时间")
    private LocalDateTime completeTime;

    @ExcelProperty("报工数量")
    private BigDecimal reportAmount;

    @ExcelProperty("合格数量")
    private BigDecimal qualifiedAmount;

    @ExcelProperty("不合格数量")
    private BigDecimal unqualifiedAmount;

    @ExcelProperty("入库数量")
    private BigDecimal inAmount;

    @ExcelProperty("工厂")
    private Long factoryId;

    @ExcelProperty("工作中心")
    private Long workshopId;

    @ExcelProperty("部门")
    private Long deptId;

    @ExcelProperty("工单工艺路线")
    private Long moRouteId;

    @ExcelProperty(value = "状态", converter = DictConvert.class)
    @DictFormat("mes_produce_status") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private Integer status;

    @ExcelProperty(value = "审核状态", converter = DictConvert.class)
    @DictFormat("system_approve") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private Integer approve;

    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @ExcelProperty("备注")
    private String remark;
}
